1. PHP 설치
1.1 PHP 패키지 업데이트 및 설치
Ubuntu 24.04.1(기준)에서는 기본적으로 PHP 8.1 이상이 지원됩니다. 최신 PHP 버전을 설치하려면 다음 명령어를 실행합니다.
sudo apt update
sudo apt install php -y
설치 후 버전을 확인합니다.
php -v
출력 예시:
PHP 8.1.2 (cli) (built: Jan 12 2024 08:43:21) ( NTS )
1.2 추가 PHP 확장 패키지 설치
일반적으로 필요한 PHP 확장 모듈을 함께 설치할 수 있습니다.
sudo apt install php-cli php-fpm php-mysql php-curl php-xml php-mbstring php-zip php-bcmath php-intl -y
특정 패키지가 필요한 경우 php-<패키지명> 형식으로 추가 설치할 수 있습니다.
2. PHP 설정 변경
설정 파일 php.ini를 수정하여 PHP 환경을 조정할 수 있습니다.
2.1 PHP 설정 파일 찾기
설정 파일 위치를 찾으려면 아래 명령어를 실행합니다.
php --ini
출력 예시:
Configuration File (php.ini) Path: /etc/php/8.1/cli
Loaded Configuration File: /etc/php/8.1/cli/php.ini
2.2 php.ini 파일 편집
파일을 수정하려면 nano 또는 vim을 사용할 수 있습니다.
sudo nano /etc/php/8.1/cli/php.ini
또는 웹 서버용 PHP 설정을 변경하려면:
sudo nano /etc/php/8.1/fpm/php.ini
변경할 수 있는 주요 설정:
| 설정 | 기본값 | 추천값 | 설명 |
|---|---|---|---|
memory_limit |
128M |
512M |
PHP가 사용할 최대 메모리 |
upload_max_filesize |
2M |
50M |
업로드 가능한 최대 파일 크기 |
post_max_size |
8M |
50M |
POST 요청의 최대 크기 |
max_execution_time |
30 |
300 |
스크립트 최대 실행 시간(초) |
설정 변경 후 저장(Ctrl + X → Y → Enter)하고 PHP를 다시 시작해야 적용됩니다.
sudo systemctl restart php8.1-fpm
3. PHP-FPM 설정
PHP-FPM(FastCGI Process Manager)은 웹 서버(Nginx, Apache)와 PHP 간의 성능을 최적화하는 데 사용됩니다.
3.1 PHP-FPM 서비스 확인
sudo systemctl status php8.1-fpm
출력 예시:
● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled)
Active: active (running)
3.2 PHP-FPM 풀 설정
설정 파일을 수정하려면:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
변경할 수 있는 주요 설정:
| 설정 | 기본값 | 추천값 | 설명 |
|---|---|---|---|
pm |
dynamic |
ondemand |
프로세스 관리 방식 |
pm.max_children |
5 |
10 |
최대 동시 실행 가능 프로세스 수 |
pm.start_servers |
2 |
5 |
초기 프로세스 개수 |
설정 변경 후 적용:
sudo systemctl restart php8.1-fpm
4. Apache 또는 Nginx와 PHP 연동
4.1 Apache에서 PHP 사용
Apache에 PHP 모듈을 추가하려면 다음을 실행합니다.
sudo apt install libapache2-mod-php -y
sudo systemctl restart apache2
4.2 Nginx에서 PHP-FPM 사용
Nginx에서는 PHP-FPM을 사용해야 합니다.
설정 파일을 편집합니다.
sudo nano /etc/nginx/sites-available/default
다음 내용을 추가하거나 수정합니다.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
변경 사항 적용 후 Nginx 재시작:
sudo systemctl restart nginx
5. PHP 테스트
PHP가 정상적으로 작동하는지 확인하려면 웹 루트 디렉터리에 테스트 파일을 생성합니다.
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
웹 브라우저에서 http://서버_IP/info.php 에 접속하여 PHP 정보 페이지가 출력되는지 확인합니다.
테스트 후 보안상 이유로 파일을 삭제하는 것이 좋습니다.
주의사항
DCP같은 경우 따로 설정해 드린 도메인으로 접속하고 ASW-PSMT는 포트로 접속 부탁드림니다.sudo rm /var/www/html/info.php
6. PHP 확장 모듈 목록 확인
설치된 PHP 확장 모듈을 확인하려면 다음 명령어를 실행합니다.
php -m
특정 확장 모듈이 포함되어 있는지 확인하려면:
php -m | grep mysqli
7. PHP 로그 확인
PHP 실행 중 오류가 발생하면 로그를 확인할 수 있습니다.
sudo tail -f /var/log/php8.1-fpm.log
Apache 사용 시 PHP 오류 로그는 다음과 같습니다.
sudo tail -f /var/log/apache2/error.log
Nginx 사용 시 PHP 오류 로그는 다음과 같습니다.
sudo tail -f /var/log/nginx/error.log
8. PHP 제거
PHP를 완전히 제거하려면 다음 명령어를 실행합니다.
sudo apt remove --purge php php-cli php-fpm php-mysql -y
sudo apt autoremove -y
설정 파일까지 모두 삭제하려면 /etc/php/ 디렉터리를 제거합니다.
sudo rm -rf /etc/php/
9. 요약
| 명령어 | 설명 |
|---|---|
sudo apt install php -y |
PHP 설치 |
php -v |
PHP 버전 확인 |
php --ini |
php.ini 경로 확인 |
sudo nano /etc/php/8.1/cli/php.ini |
PHP 설정 수정 |
sudo systemctl restart php8.1-fpm |
PHP-FPM 재시작 |
sudo apt install libapache2-mod-php -y |
Apache에서 PHP 활성화 |
php -m |
설치된 PHP 확장 모듈 확인 |
sudo tail -f /var/log/php8.1-fpm.log |
PHP 오류 로그 확인 |
sudo apt remove --purge php -y |
PHP 제거 |
피드벡
이 페이지가 당신에게 도움이 되었나요?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.